global {
    global.padding = 20.0
    global.stroke = 2.0
}

Colors {
    Colors.black = rgba(0.0, 0.0, 0.0, 1.0)
    Colors.darkgray = rgba(0.1, 0.1, 0.1, 1.0)
    Colors.gray = rgba(0.8, 0.8, 0.8, 1.0)
    Colors.red = rgba(1.0, 0.0, 0.0, 1.0)
    Colors.pink = rgba(1.0, 0.4, 0.7, 1.0)
    Colors.yellow = rgba(1.0, 1.0, 0.0, 1.0)
    Colors.orange = rgba(1.0, 0.6, 0.0, 1.0)
    Colors.lightorange = rgba(1.0, 0.6, 0.0, 0.25)
    Colors.green = rgba(0.0, 1.0, 0.0, 1.0)
    Colors.blue = rgba(0.0, 0.0, 1.0, 1.0)
    Colors.sky = rgba(0.325, 0.718, 0.769, 1.0)
    Colors.lightsky = rgba(0.325, 0.718, 0.769, 0.25)
    Colors.lightblue = rgba(0.0, 0.0, 1.0, 0.25)
    Colors.cyan = rgba(0.0, 1.0, 1.0, 1.0)
    Colors.purple = rgba(0.5, 0.0, 0.5, 1.0)
    Colors.white = rgba(1.0, 1.0, 1.0, 1.0)
    Colors.none = rgba(0.0, 0.0, 0.0, 0.0)
    Colors.bluegreen = rgba(0.44, 0.68, 0.60, 1.0)
}

Vertex V {
       V.shape = Circle { 
         r = 6.0
	 -- color = Colors.black	 
	 strokeWidth = 0.0
       }

       V.text = Text {
	 x = V.shape.x + global.padding
	 y = V.shape.y + global.padding
	 string = V.label
	 rotation = 0.0
	 color = V.shape.color
       }
}

Edge E
where E := MkEdge(v1, v2)
with Vertex v1; Vertex v2 {
     E.shape = Line { 
     	     startX = v1.shape.x
     	     startY = v1.shape.y
     	     endX = v2.shape.x
     	     endY = v2.shape.y
	     color = Colors.black
	     thickness = 3.0
     }

     E.text = Text {
       x = midpointX(E.shape) + global.padding
       y = midpointY(E.shape) + global.padding
       string = E.label
       rotation = 0.0
     }

     E.layering1 = v1.shape above E.shape
     E.layering2 = v2.shape above E.shape
}

Graph G {

}
